package com.jy.adscm.declarationForm.bean;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.enums.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.jy.adscm.core.interceptor.DateJsonDeserializer;

import java.io.Serializable;

/**
 * <p>
 * 经销商报单表
 * </p>
 *
 * @author yyy
 * @since 2019-01-21
 */
public class JyDeclarationForm implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 申请报单医院的ID
     */
    private Long applyHospitalId;
    /**
     * 申请报单的医院的名称
     */
    private String applyHospitalName;
    /**
     * 报单医院的类型
     */
    private Long applyHospitalType;
    @TableField(exist = false)
    private String applyHospitalTypeDesc;
    /**
     * 报单医院的级别
     */
    private Long applyHospitalLevel;
    @TableField(exist = false)
    private String applyHospitalLevelDesc;
    /**
     * 医院地址：省
     */
    private String applyAddressSheng;
    /**
     * 医院地址：市
     */
    private String applyAddressShi;
    /**
     * 医院地址：区县
     */
    private String applyAddressQuxian;
    /**
     * 医院地址：详细
     */
    private String applyAddressDetail;
    /**
     * 申请报单科室
     */
    private Long applyOffice;
    @TableField(exist = false)
    private String applyOfficeName;
    /**
     * 申请经销商
     */
    private Integer applyDealerId;
    @TableField(exist = false)
    private String applyDealerName;
    /**
     * 申请人员
     */
    private Integer applyDealerUserId;
    @TableField(exist = false)
    private String applyDealerUserName;
    /**
     * 申请时间
     */
    private Date applyTime;
    /**
     * 申请原因
     */
    private String applyReason;
    /**
     * 申请状态
     */
    private Integer applyStatus;
    @TableField(exist = false)
    private String applyStatusDesc;
    /**
     * 审核人
     */
    private Integer auditUserId;
    @TableField(exist = false)
    private String auditUserName;
    /**
     * 审核时间
     */
    private Date auditTime;
    /**
     * 审核批注
     */
    private String auditDetail;
    /**
     * 撤销人
     */
    private Integer revokeUserId;
    @TableField(exist = false)
    private String revokeUserName;
    /**
     * 撤销时间
     */
    private Date revokeTime;
    /**
     * 撤销缘由
     */
    private String revokeReason;

//    @TableField(exist = false)
    private Integer earlyWarning;//预警，0：未预警，1：已预警；到了预警期限，过程记录填写数量还不够的话，数据变红，对用户进行提示

    public Integer getEarlyWarning() {
        return earlyWarning;
    }

    public void setEarlyWarning(Integer earlyWarning) {
        this.earlyWarning = earlyWarning;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getApplyHospitalId() {
        return applyHospitalId;
    }

    public void setApplyHospitalId(Long applyHospitalId) {
        this.applyHospitalId = applyHospitalId;
    }

    public String getApplyHospitalName() {
        return applyHospitalName;
    }

    public void setApplyHospitalName(String applyHospitalName) {
        this.applyHospitalName = applyHospitalName;
    }

    public Long getApplyHospitalType() {
        return applyHospitalType;
    }

    public void setApplyHospitalType(Long applyHospitalType) {
        this.applyHospitalType = applyHospitalType;
    }

    public Long getApplyHospitalLevel() {
        return applyHospitalLevel;
    }

    public void setApplyHospitalLevel(Long applyHospitalLevel) {
        this.applyHospitalLevel = applyHospitalLevel;
    }

    public String getApplyAddressSheng() {
        return applyAddressSheng;
    }

    public void setApplyAddressSheng(String applyAddressSheng) {
        this.applyAddressSheng = applyAddressSheng;
    }

    public String getApplyAddressShi() {
        return applyAddressShi;
    }

    public void setApplyAddressShi(String applyAddressShi) {
        this.applyAddressShi = applyAddressShi;
    }

    public String getApplyAddressQuxian() {
        return applyAddressQuxian;
    }

    public void setApplyAddressQuxian(String applyAddressQuxian) {
        this.applyAddressQuxian = applyAddressQuxian;
    }

    public String getApplyAddressDetail() {
        return applyAddressDetail;
    }

    public void setApplyAddressDetail(String applyAddressDetail) {
        this.applyAddressDetail = applyAddressDetail;
    }

    public Long getApplyOffice() {
        return applyOffice;
    }

    public void setApplyOffice(Long applyOffice) {
        this.applyOffice = applyOffice;
    }

    public Integer getApplyDealerId() {
        return applyDealerId;
    }

    public void setApplyDealerId(Integer applyDealerId) {
        this.applyDealerId = applyDealerId;
    }

    public Integer getApplyDealerUserId() {
        return applyDealerUserId;
    }

    public void setApplyDealerUserId(Integer applyDealerUserId) {
        this.applyDealerUserId = applyDealerUserId;
    }

    public Date getApplyTime() {
        return applyTime;
    }

    @JsonDeserialize(using = DateJsonDeserializer.class)
    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    public String getApplyReason() {
        return applyReason;
    }

    public void setApplyReason(String applyReason) {
        this.applyReason = applyReason;
    }

    public Integer getApplyStatus() {
        return applyStatus;
    }

    public void setApplyStatus(Integer applyStatus) {
        this.applyStatus = applyStatus;
    }

    public Integer getAuditUserId() {
        return auditUserId;
    }

    public void setAuditUserId(Integer auditUserId) {
        this.auditUserId = auditUserId;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    @JsonDeserialize(using = DateJsonDeserializer.class)
    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public String getAuditDetail() {
        return auditDetail;
    }

    public void setAuditDetail(String auditDetail) {
        this.auditDetail = auditDetail;
    }

    public Integer getRevokeUserId() {
        return revokeUserId;
    }

    public void setRevokeUserId(Integer revokeUserId) {
        this.revokeUserId = revokeUserId;
    }

    public Date getRevokeTime() {
        return revokeTime;
    }

    @JsonDeserialize(using = DateJsonDeserializer.class)
    public void setRevokeTime(Date revokeTime) {
        this.revokeTime = revokeTime;
    }

    public String getRevokeReason() {
        return revokeReason;
    }

    public void setRevokeReason(String revokeReason) {
        this.revokeReason = revokeReason;
    }

    public String getApplyHospitalTypeDesc() {
        return applyHospitalTypeDesc;
    }

    public void setApplyHospitalTypeDesc(String applyHospitalTypeDesc) {
        this.applyHospitalTypeDesc = applyHospitalTypeDesc;
    }

    public String getApplyHospitalLevelDesc() {
        return applyHospitalLevelDesc;
    }

    public void setApplyHospitalLevelDesc(String applyHospitalLevelDesc) {
        this.applyHospitalLevelDesc = applyHospitalLevelDesc;
    }

    public String getApplyOfficeName() {
        return applyOfficeName;
    }

    public void setApplyOfficeName(String applyOfficeName) {
        this.applyOfficeName = applyOfficeName;
    }

    public String getApplyDealerName() {
        return applyDealerName;
    }

    public void setApplyDealerName(String applyDealerName) {
        this.applyDealerName = applyDealerName;
    }

    public String getApplyDealerUserName() {
        return applyDealerUserName;
    }

    public void setApplyDealerUserName(String applyDealerUserName) {
        this.applyDealerUserName = applyDealerUserName;
    }

    public String getApplyStatusDesc() {
        return applyStatusDesc;
    }

    public void setApplyStatusDesc(String applyStatusDesc) {
        this.applyStatusDesc = applyStatusDesc;
    }

    public String getAuditUserName() {
        return auditUserName;
    }

    public void setAuditUserName(String auditUserName) {
        this.auditUserName = auditUserName;
    }

    public String getRevokeUserName() {
        return revokeUserName;
    }

    public void setRevokeUserName(String revokeUserName) {
        this.revokeUserName = revokeUserName;
    }

    @Override
    public String toString() {
        return "JyDeclarationForm{" +
                "id=" + id +
                ", applyHospitalId=" + applyHospitalId +
                ", applyHospitalName='" + applyHospitalName + '\'' +
                ", applyHospitalType=" + applyHospitalType +
                ", applyHospitalTypeDesc='" + applyHospitalTypeDesc + '\'' +
                ", applyHospitalLevel=" + applyHospitalLevel +
                ", applyHospitalLevelDesc='" + applyHospitalLevelDesc + '\'' +
                ", applyAddressSheng='" + applyAddressSheng + '\'' +
                ", applyAddressShi='" + applyAddressShi + '\'' +
                ", applyAddressQuxian='" + applyAddressQuxian + '\'' +
                ", applyAddressDetail='" + applyAddressDetail + '\'' +
                ", applyOffice=" + applyOffice +
                ", applyOfficeName='" + applyOfficeName + '\'' +
                ", applyDealerId=" + applyDealerId +
                ", applyDealerName='" + applyDealerName + '\'' +
                ", applyDealerUserId=" + applyDealerUserId +
                ", applyDealerUserName='" + applyDealerUserName + '\'' +
                ", applyTime=" + applyTime +
                ", applyReason='" + applyReason + '\'' +
                ", applyStatus=" + applyStatus +
                ", applyStatusDesc='" + applyStatusDesc + '\'' +
                ", auditUserId=" + auditUserId +
                ", auditUserName='" + auditUserName + '\'' +
                ", auditTime=" + auditTime +
                ", auditDetail='" + auditDetail + '\'' +
                ", revokeUserId=" + revokeUserId +
                ", revokeUserName='" + revokeUserName + '\'' +
                ", revokeTime=" + revokeTime +
                ", revokeReason='" + revokeReason + '\'' +
                '}';
    }
}
